A virtual machine (VM) is a software-based implementation of a physical computing environment that includes its own virtual resources (e.g., CPU, RAM, disk storage, network connectivity). Multiple virtual machines may run on a single host computer system while sharing physical computing resources of the host. It may be useful to temporarily reallocate memory from a virtual machine for another purpose, for example, to supply the host or another virtual machine with additional memory for a short time.
Memory ballooning generally describes a method of virtual memory management where virtual machine memory may be temporarily reassigned for another purpose. For example, an amount of virtual machine memory may be placed in a reserved area called a balloon. The memory then may be reallocated and used for other purposes while it remains in the balloon. The memory then may be removed from the balloon and returned to the virtual machine at a later time.